package com.linkit.main.widget;

import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;

import com.linkit.main.MainActivity;
import com.linkit.main.R;

/**
 * Hiển thị thông tin địa chỉ vị trí người dùng
 * 
 */
public class HeaderLayout extends RelativeLayout implements OnClickListener {
	private MainActivity main;
	public ImageView icon;
	public ExtendedTextView name;
	public LinearLayout contentLayout;
	public LinearLayout backLayout;

	/** Hàm khởi tạo mặc định */
	public HeaderLayout(Context context) {
		super(context);
		initParams(context);
	}

	/** Hàm khởi tạo mặc định */
	public HeaderLayout(Context context, AttributeSet att) {
		super(context, att);
		initParams(context);
	}

	private void initParams(Context context) {
		this.main = (MainActivity) context;
		RelativeLayout.inflate(main, R.layout.header, this);

		// icon back của header
		icon = (ImageView) findViewById(R.id.header_icon);

		// title header
		name = (ExtendedTextView) findViewById(R.id.header_title);

		backLayout = (LinearLayout) findViewById(R.id.header_title_layout);
		backLayout.setOnClickListener(this);

		contentLayout = (LinearLayout) findViewById(R.id.header_content_layout);
	}

	@Override
	public void onClick(View v) {
		int id = v.getId();
		switch (id) {
		case R.id.header_title_layout:
			main.onBackPressed();
			break;
		}
	}

	/**
	 * Thiết lập lại ảnh cho icon back
	 * 
	 * @param resId
	 */
	public void setArrowIcon(int resId) {
		icon.setImageResource(resId);
	}

	/**
	 * Thiết lập lại giá trị của tên header
	 * 
	 * @param resId
	 *            : resId của chuỗi
	 */
	public void setHeaderTitle(String title) {
		name.setText(title);
	}

	/**
	 * Thiết lập lại giá trị của tên header
	 * 
	 * @param resId
	 *            : resId của chuỗi
	 */
	public void setVisibleTitle(boolean isVisible) {
		if (isVisible) {
			name.setVisibility(View.VISIBLE);
		} else {
			name.setVisibility(View.GONE);
		}
	}

	/**
	 * Thêm view vào nội dung của header
	 * 
	 * @param resId
	 *            : id của layout
	 */
	public void addHeaderContent(View view) {
		contentLayout.removeAllViews();
		RelativeLayout.LayoutParams param = new LayoutParams(
				LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
		contentLayout.addView(view, param);
		contentLayout.setVisibility(View.VISIBLE);
	}

	/**
	 * xóa nội dung động trên header
	 */
	public void removeHeaderContent() {
		contentLayout.removeAllViews();
		contentLayout.setVisibility(View.GONE);
	}

	public void setOnClickListener(OnClickListener listener) {
		backLayout.setOnClickListener(listener);
	}

	public void showBackHeader(boolean isVisible) {
		if (isVisible) {
			name.setVisibility(View.VISIBLE);
			icon.setVisibility(View.VISIBLE);
		} else {
			name.setVisibility(View.GONE);
			icon.setVisibility(View.GONE);
		}

	}
}
